//导入数据库操作模块
const db=require('../db/index')
//导入处理密码的模块
const bcrypt=require('bcryptjs');

//获取用户基本信息的处理函数
exports.getuserinfo=(req,res)=>{
    //定义 sql 语句
    const sql='select id,username,nickname,email,user_pic from ev_users where id=?';
    db.query(sql,req.user.id,(err,results)=>{
        if(err) return res.cc(err);
        if(results.length!=1) return res.cc('获取信息失败！')

        //获取用户信息成功
        res.send({
            status:0,
            message:'获取用户信息成功',
            data:results[0],
        })
    })
}

//更新用户信息的处理函数
exports.updateUserinfo=(req,res)=>{
    //定义更新的 sql 语句
    const sql='update ev_usere set ? where id=?'
    db.query(sql,[req.body,req.body.id],(err,results)=>{
        if(err) return res.cc(err);
        if(results.affectedRows!=1) return res.cc('更新用户信息失败');
        res.cc('更新用户信息成功！',0);
    })
}

exports.updatePassword=(req,res)=>{
    //定义 sql 语句
    const sql='select * from ev_users where id=?';
    db.query(sql,req.user.id,(err,results)=>{
        if(err) return res.cc(err);
        if(results.length!=1) return res.cc('用户不存在');
        //判断密码是否正确
        const compareResult=bcrypt.compareSync(req.body.oldPwd,results[0].password);
        if(!compareResult) return res.cc('旧密码错误');
       
        //定义更新密码的sql语句
        const sql='update ev_users set password=? where id=?';
        //对新密码加密
        const newPwd=bcrypt.hashSync(req.body.newPwd,10);
        db.query(sql,[newPwd,req.user.id],(err,results)=>{
            if(err) return res.cc(err);
            if(results.affectedRows!=1) return res.cc('更改密码失败');
            //判断密码是否正确
           res.cc('更改密码成功',0);
        })
    })
}